package main

import "fmt"

func initSeq() func() int {
	i := 0
	return func() int {
		i++
		return i
	}
}

//这个函数intSeq返回另一个函数，在这个函数的主体中匿名定义,返回的函数关闭该变量i以形成闭包。
func main() {
	nextInt := initSeq()
	fmt.Println(nextInt())
	fmt.Println(nextInt())
	fmt.Println(nextInt())
	fmt.Println(nextInt())

	newInts := initSeq()
	fmt.Println(newInts())
}
